import type { ExtensibleEntityDto, ExtensibleObject } from '@abp/ng.core';
import type { OperatorDto } from '../staff/models';

export interface WarehouseCreateDto extends WarehouseCreateOrUpdateBase {
}

export interface WarehouseCreateOrUpdateBase extends ExtensibleObject {
  tenantId?: string;
  name?: string;
  operatorId?: string;
  allowNegativeInventory: boolean;
  enabled: boolean;
  code?: string;
  sourceType?: string;
  sourceKey?: string;
  sourceCreatedOn?: string;
  isDeleted: boolean;
  deleterId?: string;
  deletionTime?: string;
  lastModificationTime?: string;
  lastModifierId?: string;
  creationTime?: string;
  creatorId?: string;
}

export interface WarehouseDto extends ExtensibleEntityDto<string> {
  tenantId?: string;
  name?: string;
  operatorId?: string;
  operator: OperatorDto;
  allowNegativeInventory: boolean;
  enabled: boolean;
  code?: string;
  sourceType?: string;
  sourceKey?: string;
  sourceCreatedOn?: string;
  isDeleted: boolean;
  deleterId?: string;
  deletionTime?: string;
  lastModificationTime?: string;
  lastModifierId?: string;
  creationTime?: string;
  creatorId?: string;
  concurrencyStamp?: string;
}

export interface WarehouseUpdateDto extends WarehouseCreateOrUpdateBase {
  concurrencyStamp?: string;
}
